package com.qf.core.utils;

import org.springframework.web.multipart.MultipartFile;

import java.util.Objects;
import java.util.UUID;

/**
 * @Author: sin
 * @Date: 2025/5/22 15:29
 * @Description: 文件名工具类
 **/
public class FileUtils {

    /**
     * 生成唯一文件名
     * @param filename  文件名
     * extension 文件扩展名，如 ".jpg" 或 "png"
     * @return 生成后的文件名，如 "xxx.png"
     * String.format("%s.%s", key, extension);  %s.%s   %s相当于动态参数  用于参数拼接
     */
    public static String generateUniqueFileName(String filename) {
        String extension = getFileExtension(filename);
        // （拼接时间戳并 将 UUID 字符串中的 - 替换成空字符串） 1719123456789-550e8400e29b41d4a716446655440000
        String key = System.currentTimeMillis() + "-" + UUID.randomUUID().toString().replace("-", "");
        System.out.println(String.format("%s.%s", key, extension));
        System.out.println(String.format("%s.%s", key, extension));
        return String.format("%s.%s", key, extension);
    }

    /**
     * 获取文件扩展名（无点号）
     *
     * @param filename 原始文件名
     * @return 文件扩展名，如 "png"、"jpg"，若无扩展名则返回空字符串
     */
    public static String getFileExtension(String filename) {
        if (filename == null || !filename.contains(".")) {
            return "";
        }
        return filename.substring(filename.lastIndexOf('.') + 1);
    }

    /**
     * 文件格式
     **/
    public static Boolean isImage(MultipartFile file) {
        return Objects.requireNonNull(file.getContentType()).startsWith("image/");
    }
}
